package monitor

import (
	"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
)

type CloudMonitorInterface interface {
	ApmGreeter
	GrafanaGreeter
	PrometheusGreeter
}

type Monitor struct {
	credential *common.Credential
}

func NewMonitor(credential *common.Credential) CloudMonitorInterface {
	return &Monitor{
		credential: credential,
	}
}

func (m *Monitor) Credential() *common.Credential {
	return m.credential
}

func (m *Monitor) APM(region string) ApmInterface {
	return newApm(m, region)
}

func (m *Monitor) Grafana(region string) GrafanaInterface {
	return newGrafana(m, region)
}

func (m *Monitor) Prometheus(region string) PrometheusInterface {
	return newPrometheus(m, region)
}
